// 白名单
const whiteList = [
	'/', // 注意入口页必须直接写 '/'
	// { pattern: /^\/pages\/list.*/ }, // 支持正则表达式
	// '/pages/classify/classify',
	// '/pages/details/details',
	"/pages/index/index",
	"/pages/users/login",
	'/pages/users/register',
	'/pages/my/loginPass'
]

export default async function() {
	const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']
	// 用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
	list.forEach(item => {
		uni.addInterceptor(item, {
			invoke(e) {
				const url = e.url.split('?')[0] // 获取要跳转的页面路径（url去掉"?"和"?"后的参数）
				if (url !== '/pages/users/login') { //并缓存要去的页面路由以便用户登录成功后直接跳转
					uni.setStorageSync('toRouter', url)
				}
				let pass = ((whiteList.indexOf(url) == -1) && !uni.getStorageSync("token"))
				if (pass) {
					uni.navigateTo({
						url: '/pages/users/login'
					})
					return false
				}
				return e
			},
			fail(err) { // 失败回调拦截
				console.log(err)
			}
		})
	})
}